package com.test.event.base;

import java.util.ArrayList;
import java.util.List;

/**
 * 类功能描述:
 * 使用者继承该对象
 * 如：PscDataForPersist要使用，就继承这个对象
 *
 * @author bgt
 * @version V1.0
 * @since 2019-02-18 17:07
 */
public class PSCBaseParam {

    private List<PSCEvent> events = new ArrayList<>();

    /**
     * 注册事件
     *
     * @param event
     */
    public void registerEvent(PSCEvent event) {
        events.add(event);
    }

    /**
     * 执行事件
     */
    public void process() {
        realprocess(false);
    }
    /**
     * 执行事件
     */
    public void synprocess() {
        realprocess(true);
    }

    /**
     * 执行事件
     */
    public void realprocess(boolean isSyn) {
        events.stream().forEach(e -> {
            if (isSyn) {
                e.synprocess(this);
            } else {
                e.process(this);
            }
        });
    }


}
